home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 31
/
Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso
/
Aminet
/
dev
/
gui
/
gui4cli.lha
/
Gui4Cli
/
Tools
/
Cli.gc
< prev
next >
Wrap
Text File
|
1999-04-21
|
6KB
|
213 lines
G4C
; This GUI is similar to the Workbench "Execute command" GUI, but more.
; There is a textin gadget for entering commands, buttons for choosing
; files, changing the directory, and opening a newshell.
; More important, it can also send ARexx commands to the port shown
; in the other (bottom right) textin gadget (which can also be changed)
; USE :
; Guiload guis:tools/cli.gc <commandline> <mode> - or
; GuiOpen cli.gc <commandline> <mode>
WINBIG 48 34 554 39 "Enter commands :"
WinSmall 0 -1 422 30
WinType 11110010
BOX 0 0 554 39 out BUTTON
; ------------------------------------------------------------------
; System events
; ------------------------------------------------------------------
xOnLoad cl_Main cl_Mode
if $cl_Mode < ' '
cl_Mode = G4C
endif
cl_Port = $$G4C.port ; Port name (can also sendrexx to ourselves)
guiopen cli.gc
xonRELOAD cl_Main cl_Mode
guiopen cli.gc
xOnOpen
setwintitle cli.gc '$$CURRENT_DIR'
Update cli.gc 1 $cl_Main ; show whatever the command line is
SetGad cli.gc 1 ON ; to get the cursor in the gadget immediately
; update cycler to mode given
docase $cl_Mode
case = G4C
update cli.gc 10 0
break
case = CLI
update cli.gc 10 1
break
case = RUN
update cli.gc 10 2
break
case = EXEC
update cli.gc 10 3
break
endcase
stack = $$g4c.stack
update cli.gc 12 $stack
xOnRMB
status
; ------------------------------------------------------------------
;===============> Main text input gadget
; ------------------------------------------------------------------
XTEXTIN 10 5 513 14 "" cl_Main "" 512
gadid 1
gadhelp 'Enter Command line'
gosub cli.gc DoCommand
XBUTTON 525 5 20 14 C
gadhelp 'Clear Command line'
cl_Main = ""
update cli.gc 1 ""
; ------------------------------------------------------------------
;========> Cycler for choosing ARexx/CLI/RUN modes
; ------------------------------------------------------------------
XCYCLER 10 20 80 14 "" cl_Mode
GadID 10 ; we may want to change it from elsewhere
gadhelp 'Choose action to take on command line'
CSTR ARexx G4C
CSTR CLI CLI
CSTR RUN RUN
CSTR Exec EXEC
; ------------------------------------------------------------------
;========> GO button (to execute the command)
; ------------------------------------------------------------------
XBUTTON 90 20 40 14 "GO!"
gadhelp 'Execute action shown in Cycler'
gosub cli.gc DoCommand
; ------------------------------------------------------------------
;=======> button for file requester for commands
; ------------------------------------------------------------------
XBUTTON 135 20 65 14 "Cmd.."
gadhelp 'Choose a Command'
cl_cmd = ""
REQFILE -1 -1 300 -60 "Choose Files" LOAD cl_cmd sys:c
if $cl_cmd > ""
cl_temp = $cl_Main
cl_Main = '$cl_cmd '
appvar cl_Main $cl_temp
update cli.gc 1 $cl_Main
delvar cl_temp
endif
; ------------------------------------------------------------------
;========> Button for File requester for filenames
; ------------------------------------------------------------------
XBUTTON 200 20 65 14 "Files.."
gadhelp 'Choose a File as an argument'
cl_File = ""
REQFILE -1 -1 300 -60 "Choose Files" MULTI cl_File $$CURRENT_DIR
if $cl_File > ""
appvar cl_Main $cl_File
update cli.gc 1 $cl_Main
endif
; ------------------------------------------------------------------
;========> Button to open a shell
; ------------------------------------------------------------------
XBUTTON 265 20 40 14 Cli
gadhelp 'Open a Shell'
CLI 'Newshell "con:0/150/640/100/NewShell/CLOSE"'
; ------------------------------------------------------------------
;========> Button to change directory
; ------------------------------------------------------------------
XBUTTON 305 20 40 14 CD
setvar cl_Dir ""
gadhelp "Change Gui4Cli's current directory"
REQFILE -1 -1 300 -60 "Choose directory" DIR cl_Dir ""
if $cl_Dir > ""
CD $cl_Dir
SetWinTitle cli.gc '$cl_Dir'
endif
; ------------------------------------------------------------------
;========> Set stack size
; ------------------------------------------------------------------
XTEXTIN 365 20 55 14 "" stack 4000 12
gadid 12
gadhelp 'Sets the STACK size for CLI or RUN'
setstack $stack
XBUTTON 350 20 15 14 "<"
gadhelp 'Decrease stack size'
if $$g4c.stack > 1500 ; minimum stack size
stack == $$g4c.stack - 1024
endif
update cli.gc 12 $stack
setstack $stack
XBUTTON 420 20 15 14 ">"
gadhelp 'Increase stack size'
stack == $$g4c.stack + 1024
update cli.gc 12 $stack
setstack $stack
; ------------------------------------------------------------------
;========> TEXTin gadget to get port name for sendrexx command
; ------------------------------------------------------------------
XTEXTIN 440 20 105 14 "" cl_Port "Gui4Cli" 40
GadID 2
gadhelp 'Port name for sending ARexx commands'
; ------------------------------------------------------------------
;========> ROUTINE to execute command
; ------------------------------------------------------------------
xROUTINE DoCommand
docase $cl_Mode
case = G4C
SendRexx $cl_Port $cl_Main
break
case = CLI
CLI $cl_Main
break
case = RUN
RUN $cl_Main
break
case = EXEC
CLI 'execute $cl_Main'
break
endcase
if $$RETCODE = 0
SetWinTitle cli.gc "OK - $$G4C.DIR"
else
SetWinTitle cli.gc "* ERROR * $$RETCODE $$REXXRET"
endif
; ------------------------------------------------------------------
;=========> before commands are executed, we restore the window title
; ------------------------------------------------------------------
xBEFORE
SetWinTitle cli.gc '$$CURRENT_DIR'